#ifndef QUEUE_H
#define QUEUE_H
#include "List/linkList.h"
#define maxsize 10
// 队列：顺序队列，循环队列，优先队列

// 顺序队列
class queue:public Node
{
public:
    queue();
    ~queue(){}
    bool isEmpty(queue *q);
    void pushQueue(queue *q, int data);
    void popQueue(queue *q);
    void printQueue(queue *q);
    int calac(queue *q);
public:
    Node *front;
    Node *rear;
};

// 为了避免顺序队列产生假溢出，则产生了循环队列
// 循环队列

class cirQueue
{
public:
    /* 申请空间以及将front指针和rear指针内容赋值为0，
     * 即指向第0个元素即可（注意第0个元素内容为空）。*/
    cirQueue();
    ~cirQueue(){}
    void pushQueue(cirQueue *cq, int data);
    void popQueue(cirQueue *cq);
    void printCirQueue(cirQueue *cq);
public:
    int data[maxsize];
    int front;
    int rear;
};

void testRunSequentialQueue();

void testRunCircleQueue();

#endif // QUEUE_H
